1. Technical Field
The present disclosure generally relates to information handling systems (IHS) and in particular to queue depth allocation within information handling systems.
2. Description of the Related Art
As the value and use of information continue to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system (IHS) generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes, thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Some information handling systems have a converged infrastructure. A converged infrastructure supports a unified computing system that provides management of servers, storage systems and network devices through the use of pre-configured bundles of software and hardware within a single chassis. The Dell PowerEdge VRTX is one example of an IHS having a converged infrastructure.
In the PowerEdge VRTX, queue depth allocation for virtual functions assigned to respective server blades are performed by the VRTX SPERC8. In particular, the VRTX SPERC8 currently provides a static allocation of queue depth for all the 4 VFs included with the PowerEdge VRTX. Basically the queue depth of the Shared PERC H710p controller is divided equally and blades in the 4 slots can equally make use of the queue depth.
During certain operations, one out of four server blades (e.g., blade 1) may require more I/O queue depth than the queue depth allocated to that server blade. In addition, other server blades (say blades 2, 3 and 4) may under-utilize their allocated I/O queue depth. In this scenario, blade 1 is starved out as there is an upper limit to the VF queue depth. Further, the command handling is currently on a first come first served basis. If a particular blade queues up a lot of commands, the commands from other blades (and/or corresponding virtual functions) may experience undue delay in command execution.
This problem is not specific to current VRTX and shared PERC products. This problem also applies to any environment where a single storage controller is or dual storage controllers are being shared between multiple hosts and resource allocation is not fine tuned to the requirements of each host. The issue with adjusting the queue depth is that several of the operating systems learn about the capabilities of a host bus adapter (HBA) during initialization and do not adjust key parameters such as queue depth during run time or on demand.